package com.whut.service;

import com.whut.model.Judgeinfo;
import com.whut.model.Fuzzyindicators;
import com.whut.model.Membershipinfo;
import java.util.List;
import com.whut.model.Specialistinfo;

public interface FuzzyService {
    /**
     * 分页获取专家信息
     *
     * @return java.lang.Object
     * @author fanyu
     * @date 2019/9/18 9:57
     * @params [curPage, pageSize]
     */
    public Object getAllSpecialistByPage(int curPage, int pageSize);

    /**
     * 通过专家Id获取其判断矩阵信息
     *
     * @return java.lang.Object(返回的对象中包含两个list, 分别是表头和表的内容)
     * @author fanyu
     * @date 2019/9/18 9:59
     * @params [specialistId]
     */
    public Object getAllJudgeInfo(int specialistId);

    /**
     * 根据判断矩阵的横纵坐标以及专家id,修改判断矩阵内容
     *
     * @return java.lang.String（是否成功信息）
     * @author fanyu
     * @date 2019/9/18 10:00
     * @params [id1, id2, point, specialistId]
     */
    public String editJudgeInfo(int id1, int id2, double point, int specialistId, int id3);

    /**
     * 返回体系的前四级级联所需数据
     *
     * @return java.lang.Object
     * @author fanyu
     * @date 2019/9/18 10:02
     */
    public Object getChooseInfoForJudge();

    /**
     * 为判断矩阵加入一个检查项
     *
     * @return java.lang.String
     * @author fanyu
     * @date 2019/9/18 10:03
     * @params [specialistId, fourthId]
     */
    public String addJudgeItems(int specialistId, int fourthId, int id3);

    /**
     * 判断矩阵的一致性检验
     *
     * @return java.lang.Float
     * @author fanyu
     * @date 2019/9/18 10:09
     * @params [specialistId]
     */
    public Float consistCheck(int specialistId, int id3);

    public List<Membershipinfo> getAllMembership(Integer specialistId);

    public String updateZj(Specialistinfo zj);

    /**
     * 返回各检查的专家判断矩阵因素权重总表
     *
     * @return java.lang.Object
     * @author fanyu
     * @date 2019/9/20 7:34
     * @params [checkId]
     */
    public Object getAllJudgeResult(int checkId);

    /**
     * 获取每个项目的模糊评价法表格信息
     *
     * @return java.lang.Object
     * @author fanyu
     * @date 2019/9/23 19:08
     * @params [weightResult, checkId]
     */
    public Object getAllFuzzyResult(String weightInfo, int checkId);

    /**
     * 修改模糊评价中需要录入的权重
     *
     * @return java.lang.String
     * @author fanyu
     * @date 2019/9/25 15:51
     * @params [fuzzyindicators]
     */
    public String updateFuzzyWeight(Fuzzyindicators fuzzyindicators);

    /**
     * 生成模糊评价法的评语
     *
     * @return java.lang.Object
     * @author fanyu
     * @date 2019/9/25 17:14
     * @params [param]
     */
    public Object getFuzzyConclution(String param,int checkId,String weightInfo);

    public String addZj(Specialistinfo zj);

    String deleteZj(int mkey);

    void editMemberShipInfo(Membershipinfo membershipinfo);

    void deleteMemberShipInfo(Integer mkey);

    void addMemberShipInfo(Membershipinfo membershipinfo);

    void importFileData(List<Membershipinfo> list);

    void addJudgeInfo(Judgeinfo judgeinfo);

    void deleteBySpecialistId(Integer specialistId, Integer id3);

    void deleteMemberShipInfoBySpecialistId(Integer specialistId);

    String deleteItem(int id, int specialistId, int id3);

    /**
     * 搜索模糊聚类的项目各隐患信息
     * @author fanyu
     * @date 2019/10/15 20:14
     * @params [check,clusterType]
     * @return java.lang.Object
     */
    public Object getFuzzyResult(String check,int clusterType);

    /**
     * 计算模糊聚类的结果，计算方式有两种，1为夹角余弦法，2为数量积法
     * @author fanyu
     * @date 2019/10/22 10:15
     * @params [fuzzyResult, caculateType]
     * @return java.lang.Object
     */
    public Object getClusterCaculate(String fuzzyResult,int caculateType);

    List<Object> getItemByDepth(int nodeDepth,int preNum);

    Object getChooseInfoForJudge1(int preNum, String nodeDepth);

    Object getAllJudgeInfo1(int specialistId, int id3);

    Object getAllJudgeResult1(int checkId);

    String AddJudgeInfo1(String judgeinfos);

    String addMemberShipInfo1(String memberShipInfos);

    String updateIndicatorWeights(String weightData);
}
